#include<iostream>
#include<signal.h>
#include <unistd.h>
using namespace std;

// void handler(int signum)
// {
//     cout<<"处理信号："<<signum<<endl;
// }


// int main()
// {
//     // cout<<"hello world"<<endl;

//     //内核从数据类型，用户栈定义
//     struct sigaction act, oact;
//     act.sa_flags = 0;
//     sigemptyset(&act.sa_mask);
//     act.sa_handler = handler;

//     //设置到当前进程的PCB中
//     sigaction(2, &act,&oact);

//     cout<<"默认处理动作oact："<<(int)(oact.sa_handler)<<endl;

//     while(1) sleep(1);
//     return 0;
// }



 
volatile int flag = 0;   //volatile 防止编译器优化！
void handler(int sig)
{
    printf("change flag 0 to 1\n");
    flag = 1;
}

int main()
{
    signal(2, handler);
    while(!flag);
    printf("process quiit normal\n");
    return 0;
}



